package com.fdb.smcts.excel;

import java.util.LinkedList;
import java.util.List;

import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.event.AnalysisEventListener;

/**
 * 扩展AnalysisEventListener，用于easyexcel在每读取一行就执行一次invoke方法
 * 
 * @param <T>
 * @author hengyh
 * @since 2019年3月15日 下午2:54:38
 * @version 1.0
 */
public class ObjectExcelListener<T> extends AnalysisEventListener<T> {

	private List<T> datas = new LinkedList<>();

	/**
	 * easyexcel在每读取一行就执行一次invoke方法 <br>
	 * 
	 * @param object
	 * @param context
	 * @author hengyh
	 * @since 2019年3月15日 下午2:55:28
	 * @date 2019年3月15日 下午2:55:28
	 * @version 0.1
	 */
	@Override
	public void invoke(T object, AnalysisContext context) {
		datas.add(object);
	}

	/**
	 * easyexcel在读取完一个sheet页之后调用此方法 <br>
	 * 
	 * @param context
	 * @author hengyh
	 * @since 2019年3月15日 下午2:56:09
	 * @date 2019年3月15日 下午2:56:09
	 * @version 0.1
	 */
	@Override
	public void doAfterAllAnalysed(AnalysisContext context) {
		// do nothing
	}

	public List<T> getResult() {
		return datas;
	}
}
